#pragma once
#include "UIdef.h"
namespace UILib
{
    enum RenderType{
        User_GDI = 0,
        User_GDIPlus,
    };

    struct MessageDispatch{
        virtual void AddObserver( RanderObserver* pObserver ){};
        virtual void RemoveObserver( RanderObserver* pObserver ){};
    };
    class CUIFactory{
    public:
        virtual ~CUIFactory();

        static CUIFactory* Instance();
        void InitEngine( const wstring wszResDLL, RenderType eType = User_GDIPlus );
        void unInit();

        IUIDialog* Get_Dialog();

        MessageDispatch* GetMessageDispatch();
    private:
        CUIFactory(void);

        void* pMsgWnd_;
    };
}
